// miniprogram/pages/Product list/Product list.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseURL:wx.baseURL,
    total:0,
    rows:[],
    brandSelected:{},//已选品牌
    brands:[],
    brandVisible:false,
    query:{
      key:'',//搜索的关键字
      brandIds:'',
      sorted:0,
      pageNum:1,
      pageSize:10,
    },
  },
  //清空选择的品牌
  clearBrand(){
    this.setData({
      brandSelected:{}
    })
  },
  //按品牌进行搜索
  confimBrand(){
    let brandIds=[]
    for(let key in this.data.brandSelected){
      if (key && this.data.brandSelected[key]) brandIds.push(key)
    }
    this.data.query.brandIds=brandIds.join(',')
    this.refresh(()=>{
      this.setData({
        brandVisible:false
      })
    })
  },
  //切换品牌选择状态
  changeBrand(e){
    let brandSelected =  this.data.brandSelected
    brandSelected[e.currentTarget.dataset.id]=!brandSelected[e.currentTarget.dataset.id]//取反 切换选中状态
    this.setData({
      brandSelected
    })

  },
  //跳转详情页面
  detail(e){
    console.log(e)
    wx.navigateTo({
      url: '../Commodity details/Commodity details?productId='+e.currentTarget.dataset.id,
    })
  },
  //切换品牌弹窗
  changeBrandVisible(){
    let brandSelected = {}
    if(!this.data.brandVisible && this.data.query.brandIds){//打开品牌弹窗
      ///按上一次 选择结果初始化已选中品牌
      let brandIds = this.data.query.brandIds.split(',')
      for(let i =0;i<=brandIds.length;i++){
        brandSelected[brandIds[i]]=true
      }
      
    }
    this.setData({
      brandVisible : !this.data.brandVisible,
      brandSelected
    })
  },
  ///输入搜索关键字
  inputKey(e){
    console.log(e)
    this.data.query.key =  e.detail.value
  },
  //修改排序方式
  changeSorted(e){
    let sorted = e.currentTarget.dataset.sorted
    this.setData({
      'query.sorted':sorted
    })
    ///刷新
    this.refresh()
  },
  refresh(next){//查询加载
    this.data.query.pageNum =1,
    this.data.rows=[]
    this.data.total=0
    this.getList(next)
  },
  comeback(){
    wx.navigateBack()
  },
  getList(next){
   
    wx.get('/products',this.data.query).then(res=>{
      res.rows.forEach((item,index)=>{
        item.img = wx.baseURL + item.productImgs.split(',')[0]
      })
      this.setData({
        total:res.total,
        rows:this.data.rows.concat(res.rows)
      })
      if(typeof next =='function') next()
    })
  },
  getBrands(){
    wx.get('/brands').then(res=>{
      this.setData({
        brands:res
      })
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

    console.log(options)//传参成功！
    this.setData({
      'query.key':options.key||''
    })
    this.getBrands()
    this.getList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
   this.refresh(()=>{
     wx.stopPullDownRefresh()
   })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.data.query.pageNum++
    if(this.data.rows.length<this.data.total)  this.getList()

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})